package com.liu.controller;

import com.liu.bo.PhoneCode;
import com.liu.service.intf.UserService;
import com.liu.vo.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　 ┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　  ┃
 * 　　┃　　　　　　 ┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━永无BUG!━━━━━━
 *
 */
@RestController
@RequestMapping("/api/user/")
@CrossOrigin
@Api(value = "实现用户相关操作",tags = "实现用户相关操作")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("login.do")
    public R login(String phone, int code, HttpServletRequest request){
        return userService.login(phone,code,request.getRemoteAddr());
    }
    @GetMapping("checktoken.do")
    public R check(String token){
        return userService.checkToken(token);
    }
    @GetMapping("query.do")
    public R query(String token){
        return userService.query(token);
    }
    @GetMapping("loginout.do")
    @ApiOperation("注销/退出登录")
    public R loginOut(String token){
        return userService.loginOut(token);
    }
    @PostMapping("phoneRegister.do")
    @ApiOperation("手机注册")
    public R register(@RequestBody PhoneCode phoneCode, HttpServletRequest request){
        System.out.println(phoneCode.getPhone()+","+phoneCode.getCode());
        return userService.phoneRegister(phoneCode.getPhone(),phoneCode.getCode(),request.getRemoteAddr());
    }
    @ApiOperation("通过手机验证码找回密码")
    @PostMapping("findPass.do")
    public R findPass(@RequestBody PhoneCode phone, HttpServletRequest request){
        return userService.findPass(phone.getPhone(),phone.getCode(), phone.getPassword(), request.getRemoteAddr());
    }
}
